package com.yfp.client.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.List;

/**
 * @Description: 微信小程序配置
 *
 * @CreateDate: 2024/5/16 11:55
 * @UpdateUser:
 * @UpdateDate: 2024/5/16 11:55
 * @UpdateRemark: 暂无修改
 * @Version: 1.0
 */
@Data
@ConfigurationProperties(prefix = "wx.pay")
public class WxPayProperties {

    private List<WxPayProperties.Config> configs;

    private NotifyUrl notifyUrl;

    @Data
    public static class NotifyUrl {

        /**
         * 订单支付成功通知地址
         */
        private String create;

        /**
         * 退款成功通知地址
         */
        private String refund;

        /**
         * 储值退款成功通知地址
         */
        private String storedRefund;

        /**
         * 商城订单退款成功通知地址
         */
        private String mallOrderRefund;
    }


    @Data
    public static class Config {
        /**
         * 设置微信公众号或者小程序等的appid
         */
        private String appId;

        /**
         * 微信支付商户号
         */
        private String mchId;

        /**
         * 微信支付商户密钥
         */
        private String mchKey;

        /**
         * 服务商模式下的子商户公众账号ID，普通模式请不要配置，请在配置文件中将对应项删除
         */
        private String subAppId;

        /**
         * 服务商模式下的子商户号，普通模式请不要配置，最好是请在配置文件中将对应项删除
         */
        private String subMchId;

        /**
         * apiclient_cert.p12文件的绝对路径，或者如果放在项目中，请以classpath:开头指定
         */
        private String keyPath;

        /**
         * 商户APIv2密钥
         */
        private String apiV2Key;

        /**
         * 商户APIv3密钥
         */
        private String apiV3Key;

        /**
         * apiclient_key. pem证书文件的绝对路径
         */
        private String privateKeyPath;

        /**
         * apiclient_cert. pem证书文件的绝对路径
         */
        private String privateCertPath;
    }
}
